perm filename NOTICE[UP,DOC]10 blob sn#029840 filedate 1973-03-21 generic text, type T, neo UTF8
00010	*25 Feb 1972	NOTICEs	LES
00020	
00030	This file, kept in  NOTICE[UP,DOC],  is intended  to  function  as  a
00040	computerized  bulletin  board.     System  programmers  and CUSP file
00050	contributors are invited to disseminate  information  concerning  new
00060	programs  and  system  features  by adding notices to this file.  The
00070	format is arbitrary, except that the first line (and only the first
00080	line) should begin with a "*" and should contain three fields in the
00090	form
00100	 *<date><TAB><subject><TAB><programmer initials>
00110	In the date field, the year, month and day may be given in any order
00120	and the year may be abbreviated to 2 digits, but the month must be
00130	given as 3 or more letters.
00140	
00150	*9 Jan 1973	NEWS	LES
00160	To get selective listings from the NOTICE file, say "R  NEWS",  which
00170	will respond with an asterisk and expect a query such as
00180	 *March 15
00190	This asks for all notices posted since the ides of March. If the  day
00200	is  omitted,  1  is  assumed;  if  the  month  is omitted, January is
00210	assumed; if the year is omitted  (as  above)  the  last  instance  is
00220	assumed.
00230	
00240	 *Nov<TAB>SAIL
00250	is an example of a more general kind if query.   This  asks  for  all
00260	notices  since  last  November  1  that  contain  the  string  "SAIL"
00270	somewhere in the subject field, with any  case  differences  ignored.
00280	The search could be made more specific by saying
00290	 *NOV<TAB>SAIL<TAB>DCS
00300	which delivers only such notices written by Dan Swinehart.
00310	
00320	If  the  query begins with a <TAB>, so that the date is omitted, then
00330	all dates will be accepted.   Similarly, the  Subject  field  may  be
00340	omitted. A null query outputs the entire NOTICE file.
00350	
00360	If you would like the output to be spooled, type "*" at  the  end  of
00370	your query, e. g.
00380	 *July 4, 1776	Sex*
00390	If you would like to see title lines only, put a "-" at the end.  You
00400	can use both "*" and "-" together in either order.
00410	
00420	If you forget all this, type "?<return>" and this notice will  appear
00430	magically.
00440	
00450	*1 JAN 1972	DO	RPH
00460	Manual is in DO.RPH[S,DOC].
00470	
00480	*1 JAN 1972	DMAN	REG
00490	Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
00500	
00510	*1 JAN 1972	SPOOLER	REG
00520	See SPOOL.DOC[S,DOC].
00530	
00540	*1 JAN 1972	RSL SL WHAMS BAMS ETC	JHS
00550	Service Level Reservation System -- see RSL[S,DOC]
00560	
00570	
00580	*1 JAN 1972	Keyboard Commands	LES
00590	To get a summary of line editor  and  other  Monitor  commands,  list
00600	KEY.LES[S,DOC).
00610	
00620	*1 FEB 1972	INFO	REM
00630	
00640	To have access to the REM information system, type "RU I[S,REM]".
00650	
00660	*1 Jan 1972	FINGER	LES
00670	
00680	To get a listing of the names of all users currently  logged  in  and
00690	their locations, say "R FINGER".
00700	
00710	*29 Feb 1972	"Sticky PPN's" (RPG, COMPILE)	DCS
00720	
00730	   A PPN specification [P,PN] appearing before a file name in an
00740	RPG command string will be used for all subsequent files which
00750	do not specify a PPN explicitly.  This default remains in effect
00760	until another "sticky PPN" is specified.
00770	   As an example, if I am running under [AIL,DCS]:
00780	
00790	    COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
00800	
00810	would write the output on [AIL,DCS], get HEAD,DB, and PROD from
00820	[AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
00830	
00840	*1 Jan 1972	SAIL Statement Counter Profile	RES
00850	
00860	To find out how to get SAIL to give you execution frequency data for
00870	pieces of your program, list NEWMAN[S,AIL].
00880	
00890	*2 Mar 1972	CREF Default Listing Device	DCS
00900	
00910	The CREF default listing device has been changed from LPT to DSK.
00920	This change is not made in RPG mode (so that the CREF system
00930	command will still go directly to LPT).
00940	
00950	*14 Mar 1972	TV "." and <esc>I Features	DCS
00960	
00970	Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
00980	page to become a permanent part of the file (like "W" in SOS).  CANCEL
00990	will henceforth bring back this version, not the old one.
01000	
01010	To interrupt a "FIND" search prematurely, type <esc>I.  This replaces
01020	the "\<crlf>" method.
01030	
01040	*23 Mar 1972	TV for III	DCS
01050	The TV editor (though still officially unsupported) will now run on
01060	both Data-Disk and III.  In fact, you can transfer (by detach/attach)
01070	from one to the other in mid-edit!
01080	
01090	*30 APR 72	SEND	RPH
01100	SEND NOW HAS THE FOLLOWING FORMATS:
01110	
01120	SEND PN		SEND TO ALL PN'S
01130	SEND *		WRITE NOTICE.TXT
01140	SEND *,PN	SAME AS SEND PN
01150	SEND P,*	SEND TO ALL P'S
01160	SEND P,PN	SEND TO SPECIFIC P,PN
01170	SEND *,*	SAME AS SEND *
01180	A PN IS SOME PROGRAMMER NAME
01190	A P IS SOME PROJECT NAME
01200	
01210	*30 APR 72	FAIL	FW
01220	The double arrow character is no longer treated specially
01230	within the comment portion of a line.  When not within a
01240	comment, it is equivalent to a carriage-return, line-feed
01250	pair.  Now, within comments, it prints as itself.
01260	
01270	*3 JUN 1972	RAID	DCS
01280	A new version of RAID is on the system.  Since it is compatible with
01290	both Data-Disc and III consoles, I have put it on SYS: as both 
01300	RAID.REL and TVRAID.REL.  Therefore /V, /1V, /H, /1H will all load
01310	the same program.  Later, TVRAID will be phased out (of LOADER, RPG)
01320	and the numeric argument to H and V switches will be ignored.
01330	This version has been tested fairly carefully.  But report any
01340	problems you have to DCS, anyway.  The old files are saved as
01350	RAID.RLO and TVRAID.RLO on [CSP,SYS].
01360	
01370	The following things have been changed:
01380	__ There are a few display changes; in particular, the arrow
01390	   conventions of the Data-Disc RAID are now used everywhere.
01400	__ Byte mode input will be displayed in byte mode.
01410	__ Conditional breakpoints now work exactly as advertised.
01420	__ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
01430	__ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
01440	
01450	The following new features have been added:
01460	__ There are three new entries to the dispatch table preceding
01470	   DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
01480	   this table.  The three are:
01490		DDT-12:	→$RPTCNT	See below
01500		DDT-11: →$BGDDT		First word of DDT
01510		DDT-10: →DDTEND		Last word of DDT
01520	
01530	__ This is "Version 1" of RAID.  The version is henceforth stored
01540	   in the leftmost 13 bits of JOBDDT.  Since DDT and old RAID
01550	   contain 0 here, you can tell which you have loaded.  This is for
01560	   the benefit of programs which use new features -- they can
01570	   try alternate methods if the Version isn't high enough.
01580	__ If you insert a JSR $I in your program, you will effectively
01590	   place a breakpoint at that location.  You can proceed via <ctrl>P.
01600	   DO NOT single-step or set a breakpoint on this instruction!
01610	   $I is an INTERNAL symbol in RAID.  There is a pointer to it at
01620	   DDT-6.
01630	__ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
01640	   the address specified by JOBOPC.  You can proceed with <ctrl>P.
01650	   Do not expect this to work if you enter DDT before running anything,
01660	   or if your program jumps to DDT (unless it stores a reasonable
01670	   address in JOBOPC first).
01680	__ n<ctrl><meta>S, where n is a number, will execute instructions
01690	   in multi-step mode, as it would if n were absent.  However, no
01700	   change will be made in  the display until:
01710	     1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
01720	     2) RAID must pause to get instructions at a subroutine call.
01730	     3) You interrupt the stepping by typing something, or a
01740		breakpoint is encountered.
01750	   After you respond at a type (2) pause, again the display remains
01760	   unchanged until one of the conditions occurs again.  If you
01770	   responded <ctrl>S or <ctrl>X to the pause, the count will be
01780	   exhausted before the display changes again -- barring type (3)
01790	   events.  The remaining count, if any, is always available in 
01800	    $RPTCNT.   This is useful for counting exact numbers of 
01810	     executions in a given routine, etc.
01820	__ Symbol<meta>K obliterates the Symbol.  Unlike <ctrl>K, which
01830	   simply eliminates typout of the symbol, this also makes it
01840	   undefined for typein.  If, for instance, you have two locations
01850	   with the name NM1, do:
01860		NM2←NM1		Assigns a new name to one of them.
01870		NM1<meta>K	Deletes this symbol completely.
01880		NM1;		Reveals value of the other NM1.  Now
01890				NM2 refers to the first.
01900	__ Macros:
01910	   Address<ctrl>M<letter> defines <ctrl><meta><letter> as
01920	   a macro.  When the macro is invoked, Address (it can be just
01930	   an address or a byte pointer value) will be put in $M-1 (see
01940	   RAID.ON[S,DOC].  This has the effect of evaluating the string
01950	   at Address before evaluating any more keyboard input -- expanding
01960	   the macro.  Be warned that many <ctrl><meta><letter> combinations
01970	   already mean something -- use one you can do without (the macro
01980	   takes precedence).
01990	*4 JUN 1972	NEW DISPLAY EDITOR	SRS
02000	
02010	there now exists a new display editor, called ED, available for
02020	experimentation.  to run it, type
02030	 RU ED[S,SRS]
02040	when it starts up, there will be some documentation on the screen.
02050		ED is presently experimental, and improving.  Features
02060	include:  editing several files at once, splitting screen between
02070	several files or strings, faster than TV in some cases.
02080	
02090	*6 JUN 1972	PUB MANUAL	TES
02100	
02110	A new version of PUB was put up today with some obscure bugs fixed.
02120	Indexes and headings now work well.  AFTER PAGE does not always
02130	work, but AFTER TEXT is usually equivalent and does work.
02140	If you must use old version, please tell me why! To use it, log in
02150	as 12,TES and RUN PUB.
02160	
02170	There is a new manual: SPOOL PUB.TES[S,DOC]/N/B   It is 80 PAGES long, so
02180	if you don't plan to use PUB for a few months, it is advisable to
02190	wait for the SAILON to be printed.  The new manual has an index
02200	and a tutorial for beginners, plus appendices with (untested) examples.
02210	To use PUB for simple purposes, only a portion of the manual needs to be
02220	read.
02230	
02240	*MAR 1972	LOGOUT	REG
02250	Recent changes to logout command.
02260	
02270		The logout command is used to terminate a job that was created
02280	by Login, Fork, or Cfork commands.  The usual form of the command is
02290	K or KJOB, typed at monitor level, followed by a carriage return.
02300	
02310		A new command is called KAT, which combines the features of the
02320	K command and the ATtach command.  KAT requires the job number of the
02330	job to which you want to attach.  As in the Attach command, if you
02340	are attaching to a job with a different PPN than the job you are leaving,
02350	you must supply the ppn of the job to which you are attaching.
02360	
02370		Command Formats
02380		Note that curly backets { and } denote optional
02390	arguments; pointy brackets < and > denote a symbolic item which  should
02400	be replaced by some concrete instantiation of that item.
02410	
02420	K or KJOB command:
02430	
02440	K{JOB}{/<switch list>}
02450	
02460	KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
02470	
02480	Each command line is terminated by a carriage return.
02490	
02500		The item <switch list> consists of any sequence of letters
02510	chosen from the list below:
02520		THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
02530	
02540	For further confusion, consult R. Gorin.
02550	*1969	DDT	WFW
02560	 The following changes have been made to DDT:
02570	
02580	 l.  Halfword printout is now of the form  A,,B  instead
02590	     of  (A)B.  Either form may be used on input.  The difference
02600	     is that  A,,B  truncates  A to 18  bits before 
02610	     swapping halves while  (A)B  does not.
02620	
02630	 2.  $U is a new output mode.  It is the same as $A$H.
02640	 3.  $F mode will now print normalized floating permit
02650	     numbers as decimal integers.  This means that
02660	     FORTRAN users may, in general, use $F to look at
02670	     all variables and they will be printed correctly 
02680	     either fixed or floating.
02690	
02700	 4.  If the address of a string of ASCIZ text is placed
02710	     in $nB+3, then whenever breakpoint  n  is reached,
02720	     DDT will act as if the characters in the string were
02730	     being read from the teletype.  If you are preparing 
02740	     such a string in advance use either  $ or ≠ (≠33 octal)
02750	     for altmode.
02760	
02770	5.   If a  bytepointer to an  asciz  string is placed in
02780	     $M-l, DDT will act as if the characters in the string
02790	     are being read from the teletype.
02800	
02810	 6.  $$7" <delimiter> characters <delimiter> will act just
02820	     like an  asciz   statement in MACRO or FAIL,i.e.,
02830	     more than one word will be filled with  asciz for 
02840	     the characters if necessary.  $$" will have a similar
02850	     effect but with sixbit.
02860	
02870	 7.  Typing <number>$$P will cause DDT to do an automatic
02880	     proceed  <number>  times instead of forever.
02890	
02900	 8.  When printing in  $$  mode, no word will be printed
02910	     out as an I/O instruction (COND, DATAO, CONI, etc.)
02920	     unless the device number is in a special table.  The
02930	     table is  10  words long and is in $I-1, $I-2, etc.
02940	     Simply put device number here to have the appropriate I/O
02950	     instructions printed.
02960	
02970	 9.  If an address is placed in  $M-2  then for each character
02980	     DDT wishes to output, a pushj 1,@$M-2 will be executed. 
02990	     This allows output to be redirected to some device 
03000	     other than the TTY.  The character is in register 5.  The
03010	     routine should preserve all AC's and end with a POPJ l,.
03020	
03030	10.  In byte mode output ($<number>0), if a size of 0
03040	     is specified, DDT will use a special mark in $M+2.
03050	     The boundry between 1 and 0 bits specifies the size
03060	     of the bytes.  For example, a word containing
03070	
03080			11111111111 00000000000 11100010110001
03090	
03100	     would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
03110	     bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
03120	
03130	11.  Bytes may be input of $<number>%.  This should be
03140	     followed by a string of unsigned octal numbers
03150	     separated by common and terminated by an altmode.  The 
03160	     number of bytes in a word is not integal the last
03170	     byte is treated as if the word were larger 
03180	     (bit number greater than 35).  This makes input compatible
03190	     with output.  A size of  O  uses the mark in $M+2
03200	     as above.
03210	
03220	12.  It is now possible to print flag words and  T  type
03230	     instruction (TRUN, TLNN, etc.) with suitable names
03240	     for the bit involved.  In $M+3 a pointer of the following
03250	     form is placed:
03260	
03270					_______
03280					|            |
03290	    _______      	|             |
03300	$M+3 |  L1 | T0  |		| Table 0    | 
03310					|            |
03320					_______
03330		
03340					
03350					_______
03360					|            |
03370					| Table 1    |
03380					|            |
03390					_______
03400	
03410					_______
03420					|	     |                
03430					| Table 2    |
03440					|	     |                
03450					_______
03460	     As many tables as desired may be included.  The pointer
03470	     to the last table should have 0 in the left half. Each
03480	     table contains 36 words.  The  nth  word contains the
03490	     RADIX50 for the name of bit n.  $<number>J  mode will
03500	     cause a word to be printed out using the bit names in
03510	     table number.  If an entry for a bit in 0, the numeric
03520	     value will be printed.  A typical word might look like
03530	
03540	              foo! baz! 123,, fool! garp! 2
03550	
03560	     $J means $0J.  $nL causes the left half to be
03570	     printed in symbolic and the right half to be printed in
03580		↑STODAT:
03590	     bit mode, using the names of the bits as if they appeared
03600	     in the left half. $<number>V prints the left half in symbolic
03610	     and the right half in bit mode.
03620	
03630	13.  You can now transfer to what is pointed to by the left half
03640	     of a word in the same manner as you transfer using <tab>.
03650	     The command is <control>].
03660	
03670	*FEB 1972	NEW WHO	DCS
03680	As of 12-9-71:
03690	
03700	1. WHO  will  run for about two minutes, then quit.  You can  reset
03710	   this time by issuing commands (see below).
03720	
03730	2. Typing <call> does not stop spacewar jobs.  However, after about
03740	   6 seconds of operation after a <call>, the spacewar portion of
03750	   WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777).  This will
03760	   be made cleaner if the system types give me some help.
03770	
03780	3. WHO commands are now single-character commands.  WHO will not wait
03790	   for a carriage return before executing one.
03800	
03810	4. Previously, many lines of the WHO page were lost below the bottom
03820	  of the screen.  WHO now provides a "windowing" feature.   Type  "↑"
03830	  to  move  the  text  up,  so  that the line which did appear at the
03840	  center of the screen now appears at the top.  This reveals  several
03850	  new  lines  at  the  bottom.  A digit preceding the "↑" serves as a
03860	  repeat factor.
03870	 
03880	5. The "↓" command, with optional repeat factor, moves the text down
03890	   by a half-screenful, unless the first line already is displayed.
03900	
03910	6. The "E" command causes WHO to quit.  However, the last-drawn screen
03920	   will not be cleared.  So you can look at it.
03930	
03940	7. Any other character will cause WHO to clear the screen (revealing
03950	   your old page printer), then quit.
03960	*14 June 1972	VIDEO SWITCH DOCUMENTATION	LES
03970	A  SAILON  describing  the   video   switch   hardware   resides   in
03980	VDS.LES[S,DOC].  A description of keyboard commands and monitor calls
03990	for controlling the switch and DD channel allocation are described in
04000	VIDEO.LES[UP,DOC].  To  get  a  summary of the keyboard commands, say
04010	"HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
04020	
04030	*7 July 1972	DOCUMENTATION FILES	LES
04040	Online documentation files are divided into several areas, as follows.
04050		[P,DOC] contains the compiled version of the lab phone
04060			directory and other lists of people.
04070		[UP,DOC] contains user program descriptions (informal).
04080		[S,DOC] contains SAILONs, which are more formal descriptions
04090			of programs and hardware.
04100		[AIM,DOC] contains A. I. Memos, which report research results.
04110		[BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
04120	
04130	*23 JULY 1972	KLOG	RHT
04140	The KLOG command allows you to switch areas in one line.  Semantically
04150	it is LOGOUT, followed by LOGIN.  The syntax is:
04160	
04170	KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
04180	
04190	examples 
04200	
04210	KLOG 1/RHT
04220	
04230	KL/F 1|RHT
04240	
04250	KL 
04260	1,RHT
04270	
04280	*24 Jul 1972	SAIL	DCS,RHT,JRL
04290	LEAP news
04300	
04310		1. In the past global model users of LEAP were required
04320		   to have the statement:
04330			
04340			REQUIRE -1 NEW_ITEMS;
04350			
04360		   in order to inhibit the allocation of various tables
04370		   for the local leap model. This statement is no longer
04380		   required. Instead the decision to allocate the tables
04390		   will be made using the following criteria. The local model
04400		   tables will be allocated only if any of the programs loaded
04410		   together to form a single job contain any declared local
04420		   items ( that is, any items declared without the attribute
04430		   GLOBAL), or any of the programs contain  the statement:
04440			
04450			REQUIRE n NEW_ITEMS;
04460	
04470	       	   where "n" is greater that 0.
04480		   NOTE: this means that all users of local model LEAP must now
04490		   "require" new_items if they are going to dynamically create
04500		   non-global items by using the function NEW.(previously an
04510		   implicit REQUIRE 60 NEW_ITEMS was contained in every program).
04520	
04530	
04540		2. LEAP tables are now allocated as part of the SAIL initialization
04550		   code rather than on the first call to any LEAP subroutine.
04560		   The tables will be allocated if any of the SAIL programs
04570		   loaded contain declared items, itemvars, sets, lists or calls
04580		   to LEAP. This change was made so that datums of items could
04590		   be utilized before the first call to LEAP.
04600	
04610		3. The type codes for items have been altered. The new codes
04620		   returned by the TYPEIT function are as follows:
04630	
04640				0 - item deleted or never allocated
04650				1 - no type (no datum for this item)
04660				2 - item is bracketed triple
04670				3 - string
04680				4 - real
04690				5 - integer
04700				6 - set
04710				7 - list
04720				8 - procedure
04730			       16 - string array
04740			       17 - real array
04750	                       18 - integer array
04760			       19 - set array
04770			       20 - list array
04780			       21 - invalid (runtime has screwed something up)
04790	 	   The very astute user will notice that the only changes are to
04800		   up the codes for arrays and invalid by 5.
04810	
04820		IMPORTANT NOTE:This unfortunately will necesitate the recompilation
04830		and reloading of any programs which use array items as the RUNTIME 
04840		routines also use these type codes.The standard
04850		compiler  SAIL on [1,3] will have these changes as of 23:59 WED,
04860		jul26. Therefore if any of your programs use array items you should
04870		recompile them starting Thurs jul 27. Foist all complaints onto
04880		Jim Low.
04890	
04900	
04910	*25 Jul 1972	SPOOLER	REG
04920	SPOOLER NEWS:
04930		The old spooler '*LIST*' has been removed  from  the  system.
04940	Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
04950	have to reload with the new libraray.
04960	
04970		The command SPOOLQ has been removed. Instead, use the command
04980	QSPOOL.   This  has the advantage that the command can be abbreviated
04990	to one letter and the SPOOL command to two letters.
05000	
05010		A new SPOOL command is planned. This will allow users to more
05020	fully utilize features of the new spooler.
05030	
05040	*1 Aug 1972	FORTRAN	REG
05050	DEC FORTRAN version 25 and LIB40 version 31 have been put up.
05060	Some of the bugs in the compiler / operating system have been
05070	eliminated.
05080	
05090	*9 Aug 1972	DATA DISK	FW
05100	Two new features have been added to data disk DPYOUT:
05110	
05120	1) Overlapped mode, enabled by bit 0 of header word 0.
05130	   In this mode, a DPYOUT will return without waiting for
05140	   the transfer to be completed (although it will wait
05150	   for any previou transfer), enabling the program to
05160	   continue running. Header+2 will be set nonzero during
05170	   the transfer, and to zero after the transfer is complete,
05180	   so testing this is convenient (which should be done before
05190	   changing the buffer). A DPYOUT with a zero word count will
05200	   wait for a previous transfer without initiating a new one.
05210	
05220	2) Double field mode, useful for text output. This is enabled
05230	   by bit 1 of header word 0 and will cause the buffer to be
05240	   transferred twice, once on each field. Header+3 should specify
05250	   the address of the line address command word, which should
05260	   contain the low-order line address as the third command in
05270	   the word. Bit 24 of this word will be set to the proper
05280	   field on each transfer. This feature cannot be used if more
05290	   than one low-order line address command is used.
05300	
05310	*16 Aug 1972	AP NEWS (APE, HOT)	ME
05320	
05330	We have a line from the Associated  Press  (AP)  over  which  we  get
05340	national  and  international news.  The news that comes in gets filed
05350	on the disk and saved for about 24 hours.
05360	
05370	For use in reading the news, there are two programs on the system.
05380	
05390	Type "R HOT" to have the news typed on your console as it comes in.
05400	
05410	Type "R APE" to be able to selectively read the news that is on file.
05420	The  stories  are catagorized by keywords; to read the news, you type
05430	to APE whatever keywords you want to read about.  To  get  help  when
05440	you are running APE, type "?" and carriage return at any point. For a
05450	list of the keywords, TYPE the file WORDS.SRT[AP,SYS]  or  SPOOL  the
05460	file WORDS.LST[AP,SYS].
05470	
05480	For further information, see the file APE.ME[UP,DOC].
05490	
05500	
05510	*16 AUG 1972	SAIL MATRIX ROUTINES PACKAGE	SHK
05520	
05530	Following Matrix Routines Now Available:
05540	
05550	1) Real Matrix Multiplication Routine
05560		Multiplies two n-dimensional matrices (2-dimensional arrays)
05570		(size  m x n by n x p  to get a  m x p  matrix)
05580		or multiplies a 1-dimensional matrix by an n-dimensional matrix
05590		or an n-dimensional matrix by a 1-dimensional.
05600	MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
05610		multiplies A by B and places the result in C
05620		(MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
05630		The only thing it won't do (I think) is multiply two 1-dimensional
05640		matrices or n-dimensional arrays (n>2).
05650	
05660	2) Array Clear Routine
05670		MATCLR(REAL (or INTEGER) ARRAY A);
05680		Zeros the array A.
05690	
05700	3) Real Array Multiplied by a Real Constant
05710		CONMUL(REAL ARRAY A,REAL B);
05720		Multiplies array A by constant B and places the result in A.
05730	
05740	All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
05750	
05760	
05770	*30 Aug 1972	UUO	SHK
05780	There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
05790	
05800	*4 Sept 1972	AP NEWS (APE, HOT)	ME
05810	 The AP news is now spooled once a day (at a somewhat random
05820	 time).  The listing, which will be kept in the conference
05830	 room, will indicate a file name of "APNEWS[AP,SYS]".
05840	
05850	*4 SEP 1972  FILDMP	RPH
05860	New program to list files in different formats. See FILDMP.RPH on UP,DOC.
05870	
05880	*4 SEP 1972  NEW SAIL	RHT
05890	 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM  WILL  BE  UP.  ITS
05900	 SEGMENT  WILL  BE  SAISG4.  THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
05910	 FEATURES, INCLUDING USER REQUESTED  INITIALIZATIONS,  A  LOCATION(X)
05920	 FUNCTION,  AN  IMPLICIT  ARRAY:  MEMORY[0:MEMSIZE], THE RUDIMENTS OF
05930	 MULTIPLE PROCESSES, AND  MUCH  MORE.   WE  WILL  TRY  TO  HAVE  SOME
05940	 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
05950	*22 SEP 1972	NEW SAIL	RHT,JRL,KVL
05960	 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
05970	 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
05980	 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
05990	
06000	 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
06010	 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
06020	 NEWFEA.TXT[S,JRL].
06030	
06040	 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
06050	 MODEL HACKERS GLBS10. 
06060	
06070	 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
06080	 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
06090	 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
06100	 ARE RELOADED.
06110	
06120	
06130	 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
06140	 SAISG3 IS DELETED.
06150	
06160	 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
06170	 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
06180	 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
06190	 PROGRAM WITHOUT UNREADABLE MACROS.
06200	
06210	 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
06220	 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
06230	 GLBLOW.REL AS GLBLOW.921.  IF YOU FEEL YOU ARE BEING
06240	 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
06250	 SAY SOMETHING LIKE
06260	 
06270	 R SAIL.921 <CR>
06280	 * FOO←FOO <CR>
06290	 * LOADER!
06300	 * SAILOW.921[1,3],FOO <ALT>
06310	 
06320	 WHERE THE STARS ARE TYPED BY THE SYSTEM
06330	 
06340	 THIS WILL GIVE YOU THE EFFECT OF DOING 
06350	 
06360	 LOA /COM FOO
06370	 
06380	 USING THE PREVIOUS SYSTEM.  
06390	
06400	*22 Sept 1972	Upper Segment RAID and DDT	TVR
06410	RAID or DDT may be retrieved from the disk  and  run  from  an  upper
06420	segment.  This means your core image may contain RAID at a much lower
06430	cost (102 octal words instead of 12200 words for RAID).  For  details
06440	see DEBUG.DOC[1,TVR]
06450	
06460	*22 Sept 1972	AP NEWS (APE)	ME
06470	Multiple word keywords are now implemented in APE.  To use them,
06480	separate the individual words with spaces in your keyword exressions.
06490	
06500	Also, to have only the first few lines of each story you select
06510	typed out, type an "F" at the beginning of the story selection
06520	line ("Read which one(s)?").  If you use both "F" and "=" on
06530	the same line, the order is irrelevant.  When you use the "F"
06540	feature, you cannot spool or save the stories in a file.
06550	
06560	For details on using APE, see the file APE.ME[UP,DOC].
06570	
06580	*12 Oct 1972	FAIL	TVR
06590	FAIL has been changed to stop at each error and give  the  option  to
06600	continue  to next error, continue automatically or to edit.  The edit
06610	
06620	option will call SOS if there are line numbers and TVED if not.   Any
06630	complaints  should be sent to TVR.  If you don't want to stop at each
06640	error, give FAIL the switch (F).  The old version is FAIL.OLD[1,3].
06650	*21 Oct 1972	SAIL	JRL,RHT,KVL
06660	A new SAIL compiler has been put up to correct bugs reported in the
06670	last few weeks. There should be no incompatibitlies with the preceding
06680	compiler and programs compiled with the previous compiler should
06690	be runable with programs compiled with the new compiler. Thus, there
06700	is no need to recompile or even reload SAIL programs which have
06710	been compiled since SEPT 21.  If you do have a program which
06720	compiled in the last month but doesn't now:
06730		1. REPORT THE PROBLEM TO A SAIL HACKER - or send
06740		   a message to AIL, including such details as
06750		   where a copy of the offending program is and the
06760		   nature of the SAIL bug.
06770	        2. You may use the previous compiler by
06780		   R  SAIL.102
06790	           * FOO←FOO
06800	           * <call>
06810	           where  FOO is the name of your sail program and  <call>
06820		   represents the typing of the CALL button (the stars are
06830		   typed by the system). The above sequence is equivalent to
06840		   the system level command:
06850	
06860			COM /COM FOO
06870	
06880	A note to users of multiple processes and matching procedures:
06890		To initialize the multiple process environment the user
06900	        should include the following declaration:
06910	
06920		   EXTERNAL PROCEDURE MAINPR;
06930	
06940		He should also make sure this procedure is called before
06950	        doing any process sprouting or matching procedure calling.
06960		This is best done by using the REQUIRE INITIALIZATION feature
06970	        or by making:
06980		   MAINPR;
06990	        The first executable statement of your program.
07000	This initialization will be compiled in, in the near future but until
07010	then the above hack is required.
07020	*3 Nov 1972	USER INTERRUPTS	FW
07030	The PC stored on a memory protect interrupt via the new-style
07040	user interrupt system is now the exact PC stored by the hardware,
07050	rather than being incremented as it used to be. This is consistent
07060	both with the old-style (DEC) user interrupt system and with the
07070	"ILL MEM REF AT USER xxxxxx" typeout. If you really care about
07080	the exact value of this PC, consult me or the PDP-10 flowcharts,
07090	as it is anything but consistent.
07100	*3 Nov 1972	VIDEO SWITCH	FW
07110	The VDSMAP UUO now allows the 6 extra switch channels to be
07120	addressed by setting bit 9 in the AC and putting the channel number
07130	(0-5) in the TTY# field (11-17).
07140	
07150	*8 Nov 1972	DUMPS	REG
07160	DART, a new program to back up disk  files  on  tapes,  is  available.
07170	system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
07180	run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
07190	See DART.REG[UP,DOC].
07200	
07210	*8 Nov 1972	PROTECTION	REG
07220	The  file  access  protection  bit  400,  which   formerly   had   no
07230	signifigance,  now  means  'Dump  Never' in DART.  All files that had
07240	used this bit have been renamed without it.
07250	
07260	*11 Nov 1972	SYSTEM	REG
07270	The job table JOBQUE in the system now contains either the positive 
07280	or negative value of the queue code of a job. Formerly, it had
07290	always been negative.
07300	
07310	*26 Nov 1972	FTP	DCS
07320	A new FTP has been installed with the following features:
07330	
07340	 1) You needn't type the MODE, TYPE, or BYTE commands at all
07350	    unless you want to change the defaults of S, I, and 36 resp.
07360	    Changing them is inadvisable since we only support those
07370	    settings.  The defaults will be to the foreign host just
07380	    before the first data transfer.
07390	
07400	 2) RSTR clears any DATA connections that the FTP thinks it has
07410	    open.  Sometimes it's wrong.  If you get an indication from
07420	    FTP that a command is illegal because the DATA connection already
07430	    exists, do this command.  It will go away when hacks in FTP
07440	    have been cured.
07450	
07460	 3) QUOT sends the rest of the line directly over the net, so you
07470	    can use it to execute other peoples commands which are either
07480	    nonstandard or just unsupported here.  This won't do any good
07490	    if our end has to be involved in the operation, but it is good
07500	    to do things like STAT (status), and HELP at CMU.
07510	 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
07520	 and NIC document 10596 for complete FTP protocol description.
07530	
07540	*26 Nov 1972	MLISP2	DAV
07550	A new version of MLISP2 has been put on the system.  An old version
07560	exists and will be around for one week.  The main motivation for
07570	the changes was to fix several serious bugs,
07580	and to clean the language up prior to publishing a manual.
07590	Changes:
07600		(1) Variable names can no longer be literals (e.g. IF, FOR, ...).
07610		(2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
07620		(3) SPECIAL variables now must be declared at translation (PARSE)
07630			time.  To facilitate this, a new production has been added,
07640			having the form:	SPECIAL <identifier_list>
07650			It is strongly suggested that all SPECIAL variables be
07660			declared at the top of the program using this production.
07670		(4) ?# in the syntax (to inhibit scanning) should now be just #.
07680			It no longer takes up a syntax position.
07690		(5) Setting variables in backtracking contexts is now done with
07700			real LISP numbers (formerly machine representation).
07710			A function CONTEXT() gets the current backtracking
07720			context.  X{CONTEXT()/10 + 3} ← etc. is now legal.
07730		(6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
07740		(*) Prefixes are more restricted in use; the syntax is
07750			<PREFIX>  <SIMPEX>  as always, but IF, FOR, CASE, etc.
07760			are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
07770			Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
07780			use  RETURN(IF ..., PRINT(CASE ..., etc.
07790		(7) The syntax of SELECT has been changed.  Use SUCCESSOR instead
07800			of NEXT, and FINALLY instead of IN WHICH CASE.
07810			E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
07820				UNLESS NULL(L) FINALLY FAILURE()
07830		(8) MLISP2.PRI now prints as it goes along, instead of at the end.
07840	
07850	*3 Dec 1972	SAIL	RHT
07860	A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
07870	This system will include 
07880		(1) Leap revisions by JRL.  This means that any programs
07890			that use LEAP should be recompiled.
07900		(2) User required initializations will take place as
07910			the first executable statement of the main
07920			program (after outer block arrays have been
07930			initialized). Programs that are loaded
07940			with any .REL files which have user initializations
07950			should have their main programs recompiled.
07960		(3) Hooks into the user interrupt system have been provided.
07970			Those interested should see Russ Taylor.
07980		(4) A new kind of declaration has been provided:
07990			CLEANUP proc1,proc2,proc3;
08000		    Where proc1, etc. are names of (parameterless)
08010		    procedures.  The effect of a CLEANUP declaration 
08020		    is to cause the named procedures to be called
08030		    whenever the block in which it occurs is exited,
08040		    whether by falling through the end, doing a go_to,
08050		    or by any other means.  These procedures will be
08060		    called before any local arrays, sets, or lists are
08070		    released.  The calls will take place in the order
08080	 	    specified.  Thus:
08090	
08100			BEGIN
08110			INTEGER I;
08120			PROCEDURE FOO;I←1;
08130			BEGIN
08140			INTEGER ARRAY X[0:I];
08150			PROCEDURE BAZ;OUTSTR(CVS(X[I]);
08160			CLEANUP FOO,BAZ;
08170			:
08180			COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
08190				BE PRINTED OUT;
08200	
08210			:
08220			END;
08230			END;
08240	
08250		(5) various minor modifications to the process stuff.
08260	
08270	The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
08280	& HLBSA5.REL.  
08290	
08300	The old compiler will be SAIL.D07[1,3]
08310	
08320	*12 Dec 72	AP NEWS (APE)	ME
08330	There is now a full search feature in APE.  If you  type  in  a  word
08340	that  is  not in the keyword dictionary, APE will tell you so and ask
08350	you if you wish a "Full search?".  If you type Y, the news file  will
08360	be  searched  for the specified keyword.  If you type ?, a (complete)
08370	summary of this feature will be typed out (try  it!).   If  you  type
08380	anything else, no search will be done.  You may interrupt a search in
08390	progress by typing any character.  (That means you may not type ahead
08400	during a search.)
08410	
08420	Note:   Every  word not in the dictionary causes a separate search to
08430	take place and will require you to say Y to "Full search?".
08440	
08450	Special note:  Normally the whole news file is searched, taking 8  to
08460	10   seconds,  but  if  a  non-keyword  is  the  second  part  of  an
08470	intersection (eg, NIXON * JJ), then only the  necessary  stories  are
08480	searched.
08490	
08500	*12 DEC 72	PUB	TES
08510	PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
08520	The old version is PUBMAC.OLD[1,3] for a few weeks.
08530	
08540	The PUB manual has been deleted from the disk.  The abstract remains
08550	on PUB.TES[S,DOC].  Bound copies are in the SAILON file drawer.
08560	
08570	In January, a new-SAIL PUB should be up with several obscure but
08580	annoying bugs removed.  Major restrictions and bugs now known:
08590		SEND INDEX ⊂ ... ⊃	must be all on one line
08600		See {PAGE X}		must be followed by a non-word-break
08610						such as  ) , ; ] .
08620						but definitely not a SPACE
08630		NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
08640		TURN OFF "}" inside blocks doesn't always work right (just for "}")
08650		↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
08660		Footnotes hack a lot, esp. if the page fills up during one.
08670	
08680	*23 Jan 73	AP NEWS (APE)	ME
08690	A new version of APE has  been  put  on  the  system.   The  new  APE
08700	includes several changes to input formats, particularly where file or
08710	spooler output is desired.  The file APE.ME[UP,DOC] has been  updated
08720	to  explain  all  the  new  features in detail.  You should read that
08730	file,  especially  pages  4  to  12,  before  trying  to   run   APE.
08740	Alternatively,  you can type a question mark (and carriage return) to
08750	APE at any time to get help.  Here are some of the main changes.
08760	
08770	All input lines  must  now  be  ended  with  carriage  returns  (this
08780	includes the "Y" to cause a search).
08790	
08800	Input to APE from a command file is now possible (and easy/fun).  The
08810	command file should have the name APE.CMD to be most convenient,  but
08820	any  file name is legal as is (almost) any text file format (SOS, TV,
08830	E, etc.).
08840	
08850	A "CHOOSE" feature has been added to allow you to see  the  beginning
08860	of  each  story  and  then  decide if you want to see the rest of the
08870	story.
08880	
08890	To get output to a file, you say
08900		<filename> ←
08910	followed by the usual story selection specification.
08920	
08930	To get output to the spooler, you add an "S" to the selection line.
08940	
08950	To avoid having stories typed out, for instance when they  are  being
08960	spooled, add a "D" (meaning Dont type 'em) to the selection line.
08970	
08980	[ESC] I will interrupt searches as well as typeouts now.
08990	
09000	A  couple  of  features  are written up in the documentation although
09010	they are not yet implemented.  (The writeups do say  of  course  that
09020	these features  are  unimplemented.)  The features are:  1) AUTOMATIC
09030	NOTIFICATION, whereby you can be notified whenever a story  comes  in
09040	that  matches a keyword expression you have specified; and 2) typeout
09050	of the keywords  by  which  a  story  has  been  categorized.   These
09060	features  are  written  up  in  the  hope  that  you  will  read  the
09070	descriptions now and will  understand  the  features  when  they  are
09080	implemented.
09090	
09100	*28 Jan 73	SAIL	JRL
09110	
09120	The item NIC returnedby INTERROGATE when the notice queue is empty,
09130	is now the same as the item UNBOUND used in ? FOREACHES and
09140	matching procedures.
09150		i.e.
09160			(NIC=UNBOUND) is TRUE
09170	
09180	UNBOUND has a new name BINDIT since we felt the name UNBOUND had
09190	erroneous connotations.
09200	
09210	Both NIC and UNBOUND will be allowed for a while, but you should
09220	replace them with BINDIT in your source-files.
09230	
09240	Because of these changes programs using NIC, UNBOUND should be
09250	recompiled.
09260	
09270	ANY is now an item (though it can't be used in MAKE statements).
09280	
09290	So you may now say:
09300			ITMVR ← ANY;
09310			ERASE A⊗B≡ ITMVR;
09320	which will have the same effect as 
09330			ERASE A⊗B≡ANY;
09340	ANY may be an element of a set or list.
09350	All itemvars are originally initialized to ANY.
09360	
09370	*1 Feb 73	AP NEWS (APE)	ME
09380	The keyword listing feature has now been implemented.  Add a  "W"  to
09390	the selection line to have the keywords of each story typed out ahead
09400	of the story.
09410	
09420	*22 Feb 1973	FAIL	FW
09430	Several changes have been made to FAIL:
09440	1)	CALL names are now automatically OPDEFed as their corresponding
09450		CALLIs, so CALL is virtually obsolete. This is done dynamically
09460		so it should always be up to date.
09470	2)	BEND, if given an identifier argument, now checks that argument
09480		against the name of the block it ends, and generates an error
09490		message if they mismatch. This can be used as a check on
09500		BEGIN/BEND phasing.
09510	3)	The symbol $. is now available, which is like . except that it
09520		refers to the location actually occupied by the current instruction.
09530		This differs from . inside literals or if a PHASE is in effect.
09540	4)	Declaring a symbol both INTERNAL and EXTERNAL is now an error,
09550		rather than causing FAIL to drop dead as it used to.
09560	5)	The test for too many BENDs now works properly.
09570	6)	Frequently redefined macros no longer eat up large amounts of core.
09580	
09590	*25 FEB 73	COPY	RPH
09600	
09610	New copy features:
09620	  1) If you use [p] instead of [p,pn] the current default pn is used.
09630	  2) XGPLIST, new command, equivalent to COPY XGP:←.
09640	  3) New switch for font selects, format:
09650	
09660			/FONT{#n}=<filename>{.ext}{[<p>,<pn>]}
09670	
09680		If no ext is given, FNT is assumed. If no p,pn is given
09690	  XGP,SYS is assumed.The #n is the font id number, if it is left
09700	  out, it is assumed to be 0.
09710	  4) New format for /EXTRA switch, if you use /EXTRA≡n.
09720	  (yes that's an equivalence sign), then n is the number
09730	  of scan lines to skip between text lines, not the number
09740	  of extra line feeds to insert.
09750	
09760	*4 MARCH 1973	MLISP	DAV
09770	
09780	New version of MLISP is up; old copies will be kept on MLISP.OLD
09790	and MLISPC.OLD on the system for a week or two.  Differences:
09800	  1) A couple of lingering bugs were squashed.
09810	  2) A COMMENT expression was added so that MLISP will accept TV
09820		format files.  Syntax:
09830			COMMENT <any characters except ; or unpaired " or %> ;
09840		It may occur anywhere an expression may be used, e.g.
09850			A + COMMENT A DUMB PLACE TO PUT IT; B + C
09860			BEGIN
09870			COMMENT A BETTER PLACE TO PUT IT;
09880			A + B + C;
09890			END;
09900		The old %...% comment is still around as always.
09910	  3) An updated version of the LISP compiler is included in MLISPC.
09920	  4) Insignificant change: function names are printed horizontally
09930		instead of vertically.  Don't worry, PRINT is not screwing
09940		up; that's the way it is supposed to work.
09950	
09960	*5 MARCH 1973	PUB	TES
09970	
09980	THIS NOTICE IS ABOUT 70 LINES LONG, IN DECREASING ORDER OF
09990	    IMPORTANCE.
10000	
10010	A NEW VERSION OF PUB IS UP TODAY WITH MANY REPAIRS AND A
10020	FEW CHANGES.  OLD VERSION IS PUB.OLD.  SEE TES WITH PROBLEMS.
10030	
10040	NOTE:  UNTIL THE NEXT VERSION OF PUB IS UP, XGP USERS SHOULD
10050	USE THE "DEVICE TTY" COMMAND OR THE "/T" SWITCH, ESPECIALLY
10060	IF THE PAGE FRAME IS HIGHER THAN 53 LINES.
10070	
10080	ABOUT 15 KNOWN BUGS HAVE BEEN FIXED (THANKS TO RKJ AT CMU FOR
10090	A COUPLE OF STICKLERS).  FOOTNOTES SHOULD WORK BETTER;
10100	VARIABLE DECLARATIONS WORK; CROSS-REFERENCES OF THE FORM
10110	"UNIT!" LABEL  NOW WORK; AREA TEXT AND COUNT PAGE CAN ONCE
10120	AGAIN BE DECLARED IN BLOCKS; ROMAN NUMERALS, MOD, MIN, AND,
10130	GROUP BEGIN...END, INSERT...PORTION (WITH NO SENDS), AND SOME
10140	OTHER THINGS NOW WORK WELL.  TRY OUT YOUR FAVORITE BUG.
10150	
10160	ONE BUG NOT YET FIXED: SOMETIMES PUB WILL LOOP
10170	WHEN THERE ARE AREAS DECLARED THAT DON'T START AT CHAR 1.
10180	REPORT OTHER BUGS TO TES.
10190	
10200	CHANGES AND NEW FEATURES:
10210	(1) TYPEOUT DURING COMPILATION RESEMBLES NEW SAIL'S.
10220	    NOTE: FILES LIKE 3INDE.PUZ AND 2CONT.PUG ARE GENERATED
10230	    FILES.  PAGE 1 OF TV FILES IS NOT REPORTED BY PUB.
10240	
10250	(2) THERE IS NO LONGER A BLANK PAGE AT THE BEGINNING OF LPT
10260	    DOCUMENTS.
10270	
10280	(3) NEW COMMAND TO CIRCUMVENT CHANGE (2): "BLANK PAGE N" CLOSES
10290	    THE CURRENT PGE AND LEAVES N BLANK PAGES IN THE DOCUMENT.
10300	    THE PAGE COUNTER IS NOT AFFECTED.  IF N IS OMITTED, 1 IS
10310	    ASSUMED.
10320	
10330	(4) FOR TTY USERS: INSTEAD OF CURLY BRACKETS AND HORSESHOE
10340	    BRACKETS, YOU CAN NOW USE THE FOLLOWING CHARACTER PAIRS:
10350	        $( MEANS LEFT HORSESHOE (OPEN MACRO)
10360	        )$ MEAN RIGHT HORSESHOE (CLOSE MACRO)
10370	        ]$ MEANS RIGHT BRACE (SWITCH TO TEXT MODE)
10380	    THESE ARE ONLY VALID IN COMMAND MODE AND NEED NOT BE TURNED
10390	    ON.  ON THE OTHER HAND, THE FOLLOWING CONTROL CHARACTERS
10400	    ARE ONLY RECOGNIZED IN TEXT MODE AND MUST BE TURNED ON
10410	    (OTHER CHARACTERS MAY BE TURNED ON FOR THEM):
10420	        $[ MEANS LEFT BRACE (SWITCH TO COMMAND MODE).
10430	
10440	(5) NEW FEATURE: TURN ON/OFF TAB FOR "<CHARACTER>" ;;
10450	    AS PUB READS THE MANUSCRIPT, IT SUBSTITUTES FOR EACH "TAB"
10460	    FROM ONE TO EIGHT SPACES.  THIS COMMAND CHANGES PUB SO THAT
10470	    IT SUBSTITUTES THE SINGLE CHARACTER <CHARACTER> INSTEAD.
10480	    THE COMMAND MUST BE FOLLOWED BY TWO SEMICOLONS OR ELSE IT MAY
10490	    NOT TAKE EFFECT ON THE NEXT LINE.  IF IT IS DECLARED IN A BLOCK,
10500	    THE "END" OF THE BLOCK MUST BE FOLLOWED BY TWO SEMICOLONS OR
10510	    THE ORIGINAL MEANING OF TAB MAY NOT REAPPEAR IN TIME FOR THE
10520	    NEXT LINE.
10530	
10540	(6) SINGLE SPACE, DOUBLE SPACE, AND TRIPLE SPACE NOW BREAK BEFORE
10550	    CHANGING THE VALUE OF SPREAD, SO THEY TAKE EFFECT IMMEDIATELY.
10560	
10570	SUGGESTIONS AND WARNINGS:
10580	(1) "COUNT PAGE" INITIALLIZES THE PAGE COUNTER TO NULL.  IT
10590	    GETS STEPPED TO 1 THE NEXT TIME A PAGE IS OPENED.
10600	    THIS IS WHY THE TITLE PAGE HAS A BLANK PAGE NUMBER.
10610	
10620	(2) AREA RE-DECLARATIONS DO NOT TAKE EFFECT UNTIL THE
10630	    CURRENT PAGE IS CLOSED.
10640	
10650	(3) IF YOUR DOCUMENT IS LONG, IT IS HELPFUL TO HAVE A SOURCE
10660	    FILE FOR EACH CHAPTER, AND ON EACH DEBUG RUN TO "REQUIRE"
10670	    FROM THE MAIN MANUSCRIPT FILE ONLY THOSE CHAPTER FILES THAT
10680	    YOU ARE TESTING.  GLOBAL MACROS SHOULD APPEAR IN THE MAIN
10690	    FILE OF COURSE.
10700	
10710	THE MANUAL HAS NOT BEEN CHANGED, BUT IT IS BACK ON THE DISK
10720	FOR THE BENEFIT OF NET USERS (SEE PUB.TES[S,DOC] FOR DETAILS).
10800	
10900	*9 MARCH 1973	MLISP2	DAV
11000	
11100	A new version of MLISP2 is up.  Old version is on SYS:MLISP2.OLD for
11200	a week or so.  There have been extensive changes, but most are additions
11300	so that programs shouldn't have to be altered.  The changes:
11350	
11400	  1) The code generated in the syntax part of productions is somewhat
11500		shorter and more efficient.
11550	
11600	  2) There is now a way to prevent an identifier in the syntax part of
11700		a production from being turned into a LITERAL, namely precede it
11800		with a quote mark (').
11900		Example:	{IF ...}
12000		makes IF a LITERAL, as well as generating code to check for it,
12100		but		{'IF ...}
12200		just generates the code to check for it.  In fact, any token
12300		of type identifier, number or delimiter may be included in
12400		the syntax by preceeding it with the quote mark; previously
12500		only delimiters could be so included.
12550	
12600	  3) Numbers in syntax patterns MUST now be preceeded by the quote
12700		mark; previously they could occur alone.  This should not
12800		affect anyone, since I don't know of anyone who uses numbers.
12950	
13000	  4) The syntax of FOR, WHILE and UNTIL loops has been generalized
13100		slightly:  `WHILE' and `UNTIL' are now interchangeable:
13200		Examples:	FOR NEW I IN L DO NIL UNTIL I = X;
13300				FOR NEW I IN L DO NIL WHILE I = X;
13400				DO PRINT(X) UNTIL A=B;
13500				DO PRINT(X) WHILE A=B;
13600				WHILE A=B DO PRINT(X);
13700				UNTIL A=B DO PRINT(X);
13710		In addition, the code generated by COLLECT in all of the loops
13720		is now more efficient (generates an NCONC in some cases, rather
13730		than an APPEND).
13750	
13800	  5) The DEFINE expression and the vector operator (⊗) have been
13900		added to MLISP2 to make it more compatible with MLISP
14000		(c.f. the MLISP manual).  However, the DEFINE
14100		expression is not quite as general: only prefix and infix
14200		functions may be DEFINEd, whereas MLISP would allow any
14300		symbol to be DEFINEd.
14400		Syntax:	DEFINE  <dterm>, <dterm>, ..., <dterm>	(at least 1)
14450			<dterm> ::= <identifier>  PREFIX  [<token>]  [<integer>]
14500				    <identifier>  <integer>  <integer>
14550				    <identifier>  <token>  [<integer>  <integer>]
14600		where [] means optional.
14610		The integers are binding powers for the function; only one
14620		binding power, the right binding power, needs to be specified for
14630		prefixes.  The <token>s are identifiers or delimiters which
14640		may serve as an abbreviation for the function.
14700		Examples:	DEFINE NOT PREFIX;
14800				DEFINE NOT PREFIX ¬;
14900				DEFINE NOT PREFIX 1000;
15000				DEFINE PLUS + 350 400;
15100	
15200	  6) ONLY FUNCTIONS THAT ARE EXPLICITLY DEFINE'D TO BE PREFIXES MAY
15300		NOW BE USED AS PREFIXES (I.E. WITHOUT () AROUND THEIR
15400		ARGUMENT AND WITH THE VECTOR OPERATOR ⊗)!!!  NO MORE USER-DEFINED
15500		PREFIXES UNLESS EXPLICITLY DEFINE'D!!!
15600	
15700	*16 March 1973	FREEFOROL processes Text Macros	LES
15800	Freeforol may be used to  generate  form  letters  or  other fill-in-
15900	the-blanks text.  It is described in FREEFO.LES[UP,DOC].
16000	
16100	*21 March 1973	FIND Command	TVR
16200	Typing FIND <programmer> will print the status of such jobs currently
16300	logged in.  For example, FIND NET,GUE will find all  network  guests.
16400	Like WHO, this also clobbers your core image.